package com.example.storm.util;

import org.springframework.stereotype.Component;


@Component
public final class KafkaProducerUtil {

	//向kafka发送单条消息
//	public static boolean sendMessage(String msg,String url,String topicName) {
//		KafkaProducer<String, String> producer=null;
//		boolean falg=false;
//		try{
//			Properties props = KafkaProducerUtil.init(url);
//			producer= new KafkaProducer(props);
//			producer.send(new ProducerRecord(topicName,msg));
//			falg=true;
//		}catch(Exception e){
//			e.printStackTrace();
//		}finally{
//			producer.close();
//		}
//		return falg;
//	}
//
//	//初始化配置
//	private static Properties init(String url){
//		Properties props = new Properties();
//		props.put("bootstrap.servers", url);
//		//acks=0：如果设置为0，生产者不会等待kafka的响应。
//		//acks=1：这个配置意味着kafka会把这条消息写到本地日志文件中，但是不会等待集群中其他机器的成功响应。
//		//acks=all：这个配置意味着leader会等待所有的follower同步完成。这个确保消息不会丢失，除非kafka集群中所有机器挂掉。这是最强的可用性保证。
//		props.put("acks", "all");
//		//配置为大于0的值的话，客户端会在消息发送失败时重新发送。
//		props.put("retries", 0);
//		//当多条消息需要发送到同一个分区时，生产者会尝试合并网络请求。这会提高client和生产者的效率
//		props.put("batch.size", 16384);
//		props.put("key.serializer", StringSerializer.class.getName());
//		props.put("value.serializer", StringSerializer.class.getName());
//		return props;
//	}
}